package main

import (
	"bufio"
	"fmt"
	"io"
	"os"
)

var all_over_p = make(chan struct{})

func producerP(fliename string) {
	file, err := os.Open(fliename)
	if err != nil {
		fmt.Println("open file error")
		return
	}

	defer file.Close()
	bufferFile := bufio.NewReader(file)
	// 该代码使用 bufio.NewReader 函数创建一个带有默认大小缓冲区的读取器，并将其与打开的文件关联。
	for {
		line, err := bufferFile.ReadString('\n')
		if err != nil {
			if err == io.EOF {
				fmt.Println("read file end")
				break
			} else {
				fmt.Println(err)
			}
		} else {
			fmt.Println("read line:", line)
		}
	}
	all_over_p <- struct{}{}
}

func main() {
	go producerP("data/1.txt")
	<-all_over_p
}
